package com.whminwei.edu.api.dc.dto.fspn.student;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.*;

import java.util.List;

/**
 * @author zhangjq
 * @since 2024-10-24
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class DcGraduateFspn {

    private List<DcGraduate> graduateList;

    private List<DcGraduationUp> graduationUpList;

    private List<DcGraduationEmp> graduationEmpList;

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public static class DcGraduate {
        private String studentId;
        /**
         * 毕业去向
         */
        private String graduationType;
        /**
         * 毕业日期
         */
        private String graduateDate;
    }

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @EqualsAndHashCode(callSuper = true)
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public static class DcGraduationUp extends DcGraduate {
        /**
         * 学校名称
         */
        private String schoolName;
        /**
         * 专业名称
         */
        private String majorName;
        /**
         * 升学国家/地区
         */
        private String nationality;
        /**
         * 行政区划
         */
        private String areaCode;
        /**
         * 分数
         */
        private String score;
        /**
         * 升学层次
         */
        private String advanceLevel;
    }

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @EqualsAndHashCode(callSuper = true)
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public static class DcGraduationEmp extends DcGraduate {
        /**
         * 就业单位/征兵办公室名称/创业项目/具体工作内容
         */
        private String performWork;
        /**
         * 就业国家/地区
         */
        private String nationality;
        /**
         * 行政区划
         */
        private String areaCode;
        /**
         * 单位详细地址
         */
        private String companyAddress;
        /**
         * 单位性质
         */
        private String companyQuality;
        /**
         * 产业性质
         */
        private String sector;
        /**
         * 所属行业
         */
        private String industry;
        /**
         * 单位规模
         */
        private String scale;
        /**
         * 就业渠道
         */
        private String employmentChannel;
        /**
         * 合同或协议签订情况
         */
        private String contractSigned;
        /**
         * 是否对口
         */
        private String matched;
        /**
         * 薪酬
         */
        private String salary;
        /**
         * 合作单位ID
         */
        private String companyId;
    }
}
